// 1. 导入 mysql 模块
const mysql = require('mysql')
var bodyParser = require('body-parser');
// 2. 建立与 MySQL 数据库的连接关系
const db = mysql.createPool({
  host: 'localhost', // 数据库的 IP 地址
  user: 'root', // 登录数据库的账号
  password: '123456', // 登录数据库的密码
  database: 'storedb', // 指定要操作哪个数据库
})
 
// 引入express
const express = require('express')
//创建一个app实例对象
const app = express()
 
// 中间件定义post传递的格式
app.use(express.json())
app.use(bodyParser.urlencoded({extended:true}));//Context-Type 为application/x-www-form-urlencoded 时 返回的对象是一个键值对，当extended为false的时候，键值对中的值就为'String'或'Array'形式，为true的时候，则可为任何数据类型。
app.use(bodyParser.json());//用于解析json 会自动选择最为适宜的解析方式
 
 
app.get('/xiangqing',(req,res)=>{
    const sqlStr = 'select * from product'
    db.query(sqlStr, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    res.send({
        code: 200,
        msg: '获取数据成功',
        data: results
    })
})
}) 
 
app.get('/lunbo',(req,res)=>{
    const sqlStr = 'select * from lunbo'
    db.query(sqlStr, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    res.send({
        code: 200,
        msg: '获取数据成功',
        data: results
    })
})
}) 

app.get('/fenlei',(req,res)=>{
    const sqlStr = 'select * from category'
    db.query(sqlStr, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    res.send({
        code: 200,
        msg: '获取数据成功',
        data: results
    })
})
}) 

app.get('/1', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr2 = `select * from product where category_id like 1;`
    db.query(sqlStr2, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})

app.get('/2', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr3 = `select * from product where category_id like 2;`
    db.query(sqlStr3, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})

app.get('/3', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr4 = `select * from product where category_id like 3;`
    db.query(sqlStr4, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})


app.get('/4', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr5 = `select * from product where category_id like 4;`
    db.query(sqlStr5, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})


app.get('/5', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr6 = `select * from product where category_id like 5;`
    db.query(sqlStr6, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})


app.get('/6', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr7 = `select * from product where category_id like 6;`
    db.query(sqlStr7, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})


app.get('/7', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr8 = `select * from product where category_id like 7;`
    db.query(sqlStr8, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})


app.get('/8', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr9 = `select * from product where category_id like 8;`
    db.query(sqlStr9, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})
app.get('/0', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr11 = `select * from product;`
    db.query(sqlStr11, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})


app.get('/user', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr13 = `select * from users;`
    db.query(sqlStr13, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})


app.get('/shop', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr14 = `select * from shoppingcart;`
    db.query(sqlStr14, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})

app.get('/shoucang', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr15 = `select * from product_copy1;`
    db.query(sqlStr15, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '查询数据成功',
        data: results
    })
    })
})

app.post('/add', (req, res) => {
    // /配置请求的域名，*代表任意
    res.header("Access-Control-Allow-Origin", "*");   
    // 支持跨域请求类型
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    //配置请求头信息，包含字符集等等 
    res.header("Content-Type", "application/json;charset=utf-8");  
    // 获取到客户端通过查询字符串，发送到服务器的数据
    const body = req.body
    const sqlStr10 = `INSERT INTO product VALUES ('${body.text}');`
    db.query(sqlStr11, (err, results) => {
    // 失败
    if (err) {
        return console.log(err.message)
    } 
    res.send({
        status: 200,
        msg: '添加数据成功',
        data: results
    })
    })
})
 
// listen()端口监听
app.listen(80,(err)=>{
    if(!err){
        console.log('服务器启动成功了')
    }
})